全部文档

协议版本

平台支持标准 MQTT 3.1.1版本

协议支持

报文支持

  • 平台支持connect、subscribe、publish、ping、unsubscribe、disconnect等报文
  • 平台不支持pubrec、pubrel、pubcomp报文

特性支持

平台对协议特性支持如下:

特性 是否支持 说明
will 不支持 will、will retain 的flag必须为0,will qos必须为0
session 支持 cleansession为0会保留上次连接的信息
retain 不支持 相关标记必须为0
QoS0 支持 平台发布订阅均支持QoS0
QoS1 支持 平台发布订阅均支持QoS1
QoS2 不支持

Topic约定

  • 下列topic中pid后面是改设备的产品id,devkey后面是该设备的设备id

普通设备

基础通信Topic

功能 Topic类 操作权限 描述
时间同步 $sys/{pid}/{did}/ext/ntp/request 发布 ntp时钟同步请求
时间同步 $sys/{pid}/{did}/ext/ntp/response 订阅 ntp时钟同步响应
设备影子 $sys/{pid}/{did}/shadow/get/resp 订阅 设备获取影子回复
设备影子 $sys/{pid}/{did}/shadow/update/resp 订阅 设备更新影子回复
设备影子 $sys/{pid}/{did}/shadow/get 发布 设备获取影子
设备影子 $sys/{pid}/{did}/shadow/update 发布 设备更新影子
配置更新 $sys/{pid}/{did}/thing/config/push 订阅 云端主动下推配置信息
设备标签 $sys/{pid}/{did}/thing/deviceinfo/update 发布 设备上报标签
设备标签 $sys/{pid}/{did}/thing/deviceinfo/update_reply 订阅 设备上报标签响应
设备标签 $sys/{pid}/{did}/thing/deviceinfo/delete 发布 设备删除标签
设备标签 $sys/{pid}/{did}/thing/deviceinfo/delete_reply 订阅 删除标签回复

物模型通信Topic

功能 Topic类 操作权限 描述
属性上报 $sys/{pid}/{did}/thing/property/post/reply 订阅 设备属性上报结果回复
属性上报 $sys/{pid}/{did}/thing/property/post 发布 设备属性上报
属性设置 $sys/{pid}/{did}/thing/property/set 订阅 设备属性设置(平台→设备)
属性设置 $sys/{pid}/{did}/thing/property/set_reply 发布 设备属性设置应答(设备→平台)
OTA升级 $sys/{pid}/{did}/ota/device/inform 发布 设备上报版本号
OTA升级 $sys/{pid}/{did}/ota/device/upgrade 订阅 设备接收升级任务
OTA升级 $sys/{pid}/{did}/ota/device/progress 发布 设备上报升级状态
OTA升级 $sys/{pid}/{did}/ota/device/status 发布 设备上报升级结果
服务调用 $sys/{pid}/{did}/thing/service 订阅 平台下发服务
服务调用 $sys/{pid}/{did}/thing/service/reply 发布 设备响应服务
广播下发 $sys/{pid}/broadcast/request 订阅 广播消息下发
设备重置 $sys/{pid}/{did}/ext/reset/request 发布 设备向平台发送重置请求
日志 $sys/{pid}/{did}/thing/log/post 发布 日志上传
日志 $sys/{pid}/{did}/thing/log/post_reply 订阅 日志上传回复
事件上报 $sys/{pid}/{did}/thing/event/post 发布 设备事件上报

自定义Topic

用户可以根据实际情况,自行定义Topic。

透传设备

基础通信Topic

功能 Topic类 操作权限 描述
时钟同步 $sys/{pid}/{did}/ext/ntp/request 发布 ntp时钟同步请求
时钟同步 $sys/{pid}/{did}/ext/ntp/response 订阅 ntp时钟同步响应
设备影子 $sys/{pid}/{did}/shadow/get/resp 订阅 设备获取影子回复
设备影子 $sys/{pid}/{did}/shadow/update/resp 订阅 设备更新影子回复
设备影子 $sys/{pid}/{did}/shadow/get 发布 设备获取影子
设备影子 $sys/{pid}/{did}/shadow/update 发布 设备更新影子
配置更新 $sys/{pid}/{did}/thing/config/push 订阅 云端主动下推配置信息

物模型通信Topic

功能 Topic类 操作权限 描述
属性上报 customized/data/pid/%s/devkey/%s 发布 设备属性上报
属性设置 customized/cmd/pid/%s/devkey/%s 订阅 设备属性设置(平台→设备)
属性设置 customized/resp/pid/%s/devkey/%s 发布 设备属性设置应答(设备→平台)

自定义Topic

用户可以根据实际情况,自行定义Topic。

数据上传payload格式

设备属性主动上报

发布Topic:$sys/{pid}/{did}/thing/property/post,格式如下:

{
  "id": "123",
  "version": "1.0",
  "params": {
    "Power": {
      "value": "on",
      "time": 1524448722123
    },
    "WF": {
      "value": 23.6,
      "time": 1524448722123
    }
  }
}

表:请求参数说明

参数 类型 说明
id String 消息id号,用户自定义,String类型的数字,长度限制13位。
version String 物模型版本号,可选字段,不填默认为1.0
params JsonObject 请求参数,用户自定义,标准json格式。如以上示例中,设备上报了的两个属性Power和WF。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。
time Long 属性值生成时间。该参数为可选字段,到豪秒级。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。
value Object 上报的属性值

响应:$sys/{pid}/{did}/thing/property/post/reply,格式如下:

{
  "id": "123",
  "code":xxxx,
  “msg”:"xxxx"
}

表:响应参数说明表

参数 类型 说明
Id String 消息id号,用户自定义,String类型的数字,长度限制13位。
code Integer 结果状态码
msg String 错误信息

设备属性设置

订阅Topic:$sys/{pid}/{did}/thing/property/set,JSON数据格式如下:

{
  "id": "123",
  "version": "1.0",
  "params": {
    "temperature": "30.5"
    ...
  }
}

表:请求参数说明

参数 类型 说明
id String 消息id号,平台定义,String类型的数字,长度限制13
version String 物模型版本号,可选字段
params JsonObject 属性设置参数。如以上示例中,设置属性:{"temperature":"30.5" }

回复Topic:$sys/{pid}/{did}/thing/property/set_reply,格式如下:

{
  "id": "123"
  "code":xxxx,
  "msg":"xxxx"
}

表:响应参数说明表

参数 类型 说明
id String 消息id号,平台定义,String类型的数字,长度限制13位。
code Integer 结果状态码
msg String 错误信息

设备事件主动上报

发布Topic:$sys/{pid}/{did}/thing/event/post,格式如下:

{
    "id": "123", 
    "version": "1.0", 
    "params": {
        "identifier1": {
            "value": {
                "Power": "on", 
                "WF": "2"
            }, 
            "time": 1524448722123
        }, 
        "identifier2": {
            "value": {
                "Power": "on", 
                "WF": "2"
            }, 
            "time": 1524448722123
        }
    }
}

表: 参数说明

参数 类型 说明
id String 消息id号,平台定义,String类型的数字,长度限制13位
version String 物模型版本号,可选字段,不填默认为1.0
time Integer 时间戳, 毫秒
params object
identifier String 事件名
value object 输出参数键值对

服务调用

订阅Topic:$sys/{pid}/{did}/thing/service,JSON数据格式如下:

{
  "id": "123",
  "version": "1.0",
  "productId:100288,
  "deviceId": 10007337,
  "callType": 1,
  "serviceName":"service_1",
  "params": {
      "int":100,
      "string":"abcde"
  },
 "timeout":20
}

表:请求参数说明

参数 类型 说明
id String 服务调用id
version String 版本号,可选字段
productId Integer 产品ID
deviceId Integer 设备ID
callType Integer 调用方式: 1-同步,2-异步
serviceName String 服务名
params Object params为map[string]interface{},key为入参名,value为入参值
timeout Integer 同步-用户自定义超时时间(0为默认值10);异步-平台控制超时时间,设备和节点忽略

回复Topic:$sys/{pid}/{did}/thing/service/reply,格式如下:

{
  "id": "123"
  "code":xxxx,
  "msg":"xxxx",
  "params":{
    "output":123,
    "output2":"123"
  }
}

表:响应参数说明表

参数 类型 说明
id String 服务调用id
code Integer 错误码
msg String 错误信息
params Object 服务调用出参, key为参数名,value为参数值

时钟同步

  1. 设备端订阅Topic:$sys/{pid}/{did}/ext/ntp/response
  2. 设备请求topic:$sys/{pid}/{did}/ext/ntp/request 设备向平台发送一条QoS=0的消息,payload中带上设备当前的时间戳,单位为毫秒。示例如下:

    {
     "deviceSendTime":"1571724098000"
    }
    
  3. 设备端收到服务端回复的消息,payload中包含以下信息:

{
    "deviceSendTime":"1571724098000",
    "serverRecvTime":"1571724098110",
    "serverSendTime":"1571724098115",
}
  1. 设备端计算出当前精确的unix时间。 设备端收到服务端的时间记为${deviceRecvTime},则设备上的精确时间为:(${serverRecvTime} + ${serverSendTime} + ${deviceRecvTime} - ${deviceSendTime}) / 2

设备日志

  • 数据上行

请求Topic: $sys/{did}/{pid}/thing/log/post 响应Topic: $sys/{did}/{pid}/thing/log/post_reply 请求数据:

{
    "version":"1.0",
    "params" :[{
          "utcTime":  "2020-03-06T15:15:27.464+0800",  
          "logLevel": "ERROR",          
          "module": "ModuleA",         
          "code" :"4103",                       
          "traceContext": "123456",    
          "logContent" : "some log content" 
         }], 
    "method" : "thing.log.post"
}

表 . 参数说明

参数 类型 说明
version String 物模型版本号,可选字段,不填默认为1.0
utcTime String 日志的采集时间,为设备本地UTC时间,包含时区信息,以毫秒计,格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。 可上报其它字符串格式,但不利于问题排查,不推荐使用。
params List 请求业务参数。数组元素最多40个。
logLevel String 日志级别。可以使用默认日志级别,也可以自定义日志级别。默认日志级别从高到低为:FATAL, ERROR, WARN, INFO, DEBUG
module String 模块名称:当设备端使用Android SDK时,模块名称为ALK-LK。当设备端使用C SDK时,需自定义模块名称。当设备端使用自行开发的SDK时,需自定义模块名称。
code String 结果状态码:当设备端使用C SDK时,请参见C SDK状态码。当设备端使用自行开发的SDK时,可以自定义结果状态码,也可以为空。
traceContext String 可选参数,上下文跟踪内容,设备端使用Alink协议消息的id,App端使用TraceId(追踪ID)。
method String 请求方法,取值thing.log.post。

响应数据:

{
"code":200,
"msg":"msg"
}

表 . 响应参数说明

参数 类型 说明
code Integer 错误码, 200表示成功
msg String 错误信息

广播消息下发

  • 设备订阅广播topic:$sys/{pid}/broadcast/request

请求内容为一个json对象

```

## 设备reset
* 设备上报reset消息:`$sys/{did}/{pid}/ext/reset/request`
请求数据:
```json
{
    "id":"123"
}

表 . 参数说明

参数 类型 说明
id String 请求id
method String reset

响应数据:

{
    "id":"123",
    "code":200,
    "msg":"msg"
}

表 . 响应参数说明

参数 类型 说明
id string 请求id
code int 错误码, 200表示成功
msg string 错误信息
参数 类型 说明
id String 请求id
code Integer 错误码, 200表示成功
msg String 错误信息

设备ota

  • (可选)设备连接OTA服务,上报版本号。 设备端通过MQTT协议推送当前设备OTA模块版本号到Topic:$sys/{pid}/{did}/ota/device/inform 消息格式如下: 请求数据:
    {
    "params": {
      "pid":"100040",
      "did":"10000064",
      "fVersion":"2.0", 
      "sVersion":"2.0", 
      "manuf":"001",
      "model":"00108"
    }
    }
    
    表 . 参数说明
参数 类型 说明
did String 设备id
pid String 产品id
fVersion String 模组版本号
sVersion String 应用服务版本号
manuf String 厂商名称
model String 模组型号
  • 您在控制台触发升级操作之后,设备会收到物联网平台OTA服务推送的升级包的URL地址。 设备端订阅Topic:$sys/{pid}/{did}/ota/device/upgrade 控制台对设备发起OTA升级请求后,设备端会通过该Topic收到升级包的存储地址URL。

消息格式如下:

{
  "code": 200,
  "data":{
      "target":"1.2", 

      "token":"ota_5hc95SFeo5xJEnaNrste",

      "size":123,

      "signal":12,

      "power":90,

      "retry":10,

      "interval":90,

      "md5":"dfkdajkfd",

      "url":"172.19.3.3:8002/ota/download/ota_5hc95SFeo5xJEnaNrste"
  }   
}

表 . 参数说明

参数 类型 说明
code Integer 状态码。
data object 升级信息
target String 升级任务的目标版本
token String 后续操作的鉴权信息
size Long 文件大小
signal Integer 任务在大于该信号下进行
power Integer 任务在大于该电量下进行
retry Integer 重试次数
interval Integer 重试间隔(秒)
md5 String 升级文件的md5
url String 文件下载地址
  • 设备收到URL之后,通过HTTP协议根据URL下载升级包。
  • 升级过程中,设备端向服务端推送升级进度到Topic:$sys/{pid}/{did}/ota/device/progress; 消息格式如下:
    {
    "params": {
      "pid":"123",
      "did":"123",
      "step":11, 
      "token":"ota_5hc95SFeo5xJEnaNrste"
    }
    }
    
    表 . 参数说明
参数 类型 说明
step String OTA升级进度信息。取值范围:1~100的整数
token String 鉴权信息
did String 设备id
pid String 产品id
  • 设备端完成OTA升级后,推送升级状态到Topic:$sys/{pid}/{did}/ota/device/status
    {
    "params": {
      "pid":"123",
      "did":"123",
      "result":101,
      "token":"ota_5hc95SFeo5xJEnaNrste"
    }
    
    表 . 参数说明
参数 类型 说明
id String 消息id号,用户自定义,String类型的数字,长度限制不超过13位。可选
result Integer 升级状态码 101:升级包下载成功;102:下载失败,空间不足;103:下载失败,内存溢出;104:下载失败,下载请求超时; 105:下载失败,电量不足; 106:下载失败,信号不良; 107:下载失败,未知异常; 201:升级成功; 202:升级失败,电量不足; 203:升级失败,内存溢出; 204:升级失败,版本不一致; 205:升级失败,MD5校验失败; 206:升级失败,未知异常 207:升级失败,达到最大重试次数
token String 鉴权信息
did String 设备id
pid String 产品id

设备影子

设备影子

配置更新

设备订阅:$sys/{pid}/{did}/thing/config/push 设备获取平台下发的配置,配置格式是json,具体内容用户自定义

results matching ""

    No results matching ""